package tr.edu.metu.is.mega.client.service;

import java.util.List;

import tr.edu.metu.is.mega.common.dto.CourseDTO;
import tr.edu.metu.is.mega.common.dto.LectureNoteDTO;
import tr.edu.metu.is.mega.common.dto.TeamDTO;

import com.google.gwt.user.client.rpc.AsyncCallback;


/**
 * Async interface of {@link GwtTeamService}
 */
public interface GwtTeamServiceAsync {

    /**
     * @see GwtTeamService#createTeam(TeamDTO)
     */
    void createTeam(TeamDTO team, AsyncCallback<TeamDTO> callback);

    /**
     * @see GwtTeamService#updateTeam(TeamDTO)
     */
    void updateTeam(TeamDTO team, AsyncCallback<TeamDTO> callback);

    /**
     * @see GwtTeamService#deleteTeam(TeamDTO)
     */
    void deleteTeam(TeamDTO team, AsyncCallback<Void> callback);

    /**
     * @see GwtTeamService#getTeams(CourseDTO)
     */
    void getTeams(CourseDTO course, AsyncCallback<List<LectureNoteDTO>> callback);

}
